package com.itheima.suanfa;

/*
二分查找的代码编写

 准备数组

 */
public class BinarySearchDemo {
    //测试用
    public static void main(String[] args) {
    int[] arr={11,22,33,44,55};
        System.out.println(binarySearch(arr, 35));

    }

    //定义方法  二分查找
    //返回值类型 int
    //参数  数组 int[] arr 要找数 int number
    public static int binarySearch(int[] arr, int number) {
        //两个索引 (起始索引 最后索引)
        int  start =0;
        int end=arr.length-1;
        int  mid=-1;
        while (start<=end) {//
            //   计算出 中间索引
            mid=(start+end)/2;
            int  shu=arr[mid];

            //   要找的数    中建索引上的数
            if(number<shu){ //   <   最后索引= 中间索引-1
                end=mid-1;
            }else if(number>shu){ //   >   起始索引=中间索引+1
                start=mid+1;
            }else {
                return mid;
            }
        }
        //插入点
        /*System.out.println("start:"+start);
        System.out.println("mid:"+mid);
        System.out.println("end:"+end);*/
        //   = 直接返回 中间索引
        return -start -1;

    }


}
